Internet use has grown tremendously in recent years. The types and sources of content on the Internet have also grown. For example, computer users often access the Internet to download video, audio, multimedia, or other types of content for business, entertainment, education, or other purposes. Users typically want content “on-demand”, and would prefer not to wait a long time for download before viewing the content. Certain types of content tend to take longer than others to download. For example, download of a movie can take many minutes or hours, depending on the type of download technology used and the size of the movie object.
Conventional data transport technologies, such as Hypertext Transport Protocol (HTTP) or File Transport Protocol (FTP), are designed to ensure high quality transmission, but not necessarily for quick viewing of content. Generally, a web server that employs HTTP delivers content using “progressive download”. Using progressive download, all portions of a file or object generally must be downloaded to the user's computer (e.g., the client) up to a given point in the content before the user can begin watching the content from that point. As a result, if the user is only interested in a particular portion of the content somewhere in the middle of a file or object, the user must wait until all of the content up to that point of interest is received by the user's computer. For example, if the user wants to skip to a particular point in the content (e.g., using the scroll bar in the user's viewer), the user must generally wait until all portions of the content up to the selected point have been downloaded.
Streaming is an alternative to progressive download. Streaming content offers advantages over progressive download, from the user's perspective. When content is streamed from the server, virtually any portion of the content can be viewed almost immediately by the user. For example, if the user wants to skip to a particular point in the content, a streaming server can immediately begin sending content from the point requested by the user, rather than first delivering all content up to the requested point. In order to provide streaming, a web server must have a media streaming server, such as Microsoft's Windows Media Services™, RealNetworks' Helix Server™, or Adobe's Flash Media Server™.
However, much of the content on the Internet is still delivered with progressive download over HTTP because the existing infrastructure supports these technologies. Network providers often do not want to upgrade server computers to include media streaming servers because of cost and potential disruption of network operation. Network providers often decide that progressive download is the simpler and less costly option because it makes use of existing infrastructure. As a result, users who have client systems that are capable of playing streaming content often cannot take full advantage of their client's streaming capability because web servers often do not have the streaming capability.
In addition, generally content originates at a server (an originating server) and is copied onto one or more other servers (non-originating servers) throughout a network or networks, which disseminate the content to computer users. When a user requests to view content, a non-originating server may be selected to handle the download based on some selection criteria. Thus, many servers throughout a network or networks may have copies of the same content. Given the amount of content potentially available on a content delivery network, hosting copies of content throughout a network takes a tremendous amount of storage capacity. It is often impractical for copies of content to be hosted by non-originating servers.